Matthias Clasen [Tue, 30 Jun 2020 21:10:05 +0000 (17:10 -0400)]
inspector: Avoid a use of gtk_style_context_add_class
We have gtk_widget_add_css_class for this now.
Matthias Clasen [Tue, 30 Jun 2020 18:50:01 +0000 (14:50 -0400)]
inspector: proper list model support
Add a data tab for list models that allows exploring
the objects in the model.
Matthias Clasen [Tue, 30 Jun 2020 19:17:14 +0000 (15:17 -0400)]
inspector: Rename DataList -> TreeData
Rename the DataList object to TreeData, in preparation
for adding a ListData object for list models. While
we are touching it, modernize it a bit (drop the Private
struct, use a layout manager, etc).
Matthias Clasen [Tue, 30 Jun 2020 18:22:01 +0000 (14:22 -0400)]
inspector: Remove list model support from the property editor
This makes the inspector lock up when used with any production
size list model, and blocks access to properties of the model
itself. Instead, we'll make the model available as an object
and add a data tab for list model contents, like we already
do for tree models.
Matthias Clasen [Tue, 30 Jun 2020 12:03:06 +0000 (12:03 +0000)]
Merge branch 'issue-2904' into 'master'
Add nullable annotations for gtk_cclosure_expression_new()
Closes #2904
See merge request GNOME/gtk!2172
Emmanuele Bassi [Tue, 30 Jun 2020 11:11:21 +0000 (12:11 +0100)]
Add nullable annotations for gtk_cclosure_expression_new()
Fixes: #2904
Matthias Clasen [Tue, 30 Jun 2020 02:08:51 +0000 (22:08 -0400)]
gtklistitemfactory: Cosmetic documentation fixes
Matthias Clasen [Tue, 30 Jun 2020 02:08:21 +0000 (22:08 -0400)]
builderlistitemfactory: Documentation fixes
Matthias Clasen [Mon, 29 Jun 2020 22:17:00 +0000 (18:17 -0400)]
expression: Add to the docs
Add some more long-form explanation of what expressions
are about and where they are used.
Matthias Clasen [Mon, 29 Jun 2020 20:36:46 +0000 (16:36 -0400)]
Drop GtkFunctionsListItemFactory
It has been superseded by GtkSignalsListItemFactory.
Matthias Clasen [Mon, 29 Jun 2020 20:37:14 +0000 (16:37 -0400)]
Stop using GtkFunctionsListItemFactory
This was an early attempt at a factory, and has been
superseded by GtkSignalsListItemFactory. Port all users
the the newer one.
Carlos Garnacho [Mon, 29 Jun 2020 22:24:32 +0000 (22:24 +0000)]
Merge branch 'wip/Jehan/GtkIMContextWayland-master' into 'master'
gtk: focus out the GtkIMContextWayland upon finalization.
See merge request GNOME/gtk!2170
Jehan [Mon, 29 Jun 2020 20:12:53 +0000 (22:12 +0200)]
gtk: focus out the GtkIMContextWayland upon finalization.
In particular, it will NULL-ified the current global context if this is
the finalized one, avoiding dangling invalid pointers.
Would have been a cherry-pick from branch gtk-3-24 of commit
b592ded80ad4825d115317ba6750a086da0434c0, but files moved.
Daniel Mustieles [Mon, 29 Jun 2020 14:03:40 +0000 (16:03 +0200)]
Updated Spanish translation
Emmanuele Bassi [Mon, 29 Jun 2020 13:45:03 +0000 (13:45 +0000)]
Merge branch 'ci-style' into 'master'
ci: Create new origin for forks
See merge request GNOME/gtk!2164
Matthias Clasen [Mon, 29 Jun 2020 12:30:41 +0000 (12:30 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
Closes #1887
See merge request GNOME/gtk!2167
Emmanuele Bassi [Sun, 28 Jun 2020 13:01:19 +0000 (14:01 +0100)]
ci: Create new origin for forks
We don't need to create a new remote and fetch its master if we're
checking a merge request done on the upstream repository.
Matthias Clasen [Mon, 29 Jun 2020 03:47:26 +0000 (23:47 -0400)]
node-editor: Add a help window
Add a Help item to the gear menu that opens the
node-format.md file in a new window. This could
be improved if we could parse markdown and apply
tags, similar to how we can load pango markup.
Matthias Clasen [Mon, 29 Jun 2020 03:44:12 +0000 (23:44 -0400)]
node-editor: Cosmetics
Use a title style class for the labels.
Matthias Clasen [Mon, 29 Jun 2020 03:43:13 +0000 (23:43 -0400)]
node-editor: Add a gear menu
Add a gear menu with Inspector and About menu items.
Matthias Clasen [Mon, 29 Jun 2020 03:38:22 +0000 (23:38 -0400)]
node-editor: Document the node format
Add a markdown file with the documentation of the
node format.
Fixes: #1887
Matthias Clasen [Mon, 29 Jun 2020 03:36:35 +0000 (23:36 -0400)]
gtk-demo: Fix binary name in --version
We are gtk4-demo, not gtk3-demo.
Matthias Clasen [Mon, 29 Jun 2020 02:37:29 +0000 (22:37 -0400)]
bitset: Fix documentation syntax
Matthias Clasen [Mon, 29 Jun 2020 01:39:02 +0000 (21:39 -0400)]
bitset: Add more tests
Add some tests for rectangles, and for iters.
Matthias Clasen [Mon, 29 Jun 2020 01:28:47 +0000 (21:28 -0400)]
bitset: Correct preconditions in gtk_bitset_add_rectangle
We want to make sure that the rectangle fits in the grid.
Matthias Clasen [Sun, 28 Jun 2020 23:47:09 +0000 (23:47 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
Closes #2743
See merge request GNOME/gtk!2161
Matthias Clasen [Sun, 28 Jun 2020 22:59:48 +0000 (18:59 -0400)]
ci: Drop one of the focus tests
One of the widget-factory focus tests is flaky in ci,
perhaps due to font changes causing size computations
to go slightly differently.
Drop this for now.
Matthias Clasen [Sun, 28 Jun 2020 21:02:01 +0000 (17:02 -0400)]
testsuite: Bump the per-test timeout to 60s
The bitset test has repeatedly run into the 30s timeout
in the ci, so give it some more time.
Matthias Clasen [Sun, 28 Jun 2020 20:36:03 +0000 (16:36 -0400)]
bitset: Fix the right-shift implementation
This was not doing the right thing at all.
This commit also adds tests for left- and
right-shift.
Matthias Clasen [Sun, 28 Jun 2020 17:08:44 +0000 (13:08 -0400)]
Stop setting GTK_IM_MODULE_FILE
GTK no longer reads this environment variable, so
setting it can have no benefit for uninstalled demos
anymore.
Matthias Clasen [Sun, 28 Jun 2020 15:58:25 +0000 (11:58 -0400)]
Add g_intern_static_string to valgrind suppressions
That function can also trigger a quark table reallocation.
Matthias Clasen [Sun, 28 Jun 2020 15:24:09 +0000 (11:24 -0400)]
widget: Avoid uninitialized access
Initialize all field in the GtkCrossingData struct
when synthesizing crossing events.
Fixes: #2743
Matthias Clasen [Sun, 28 Jun 2020 03:11:07 +0000 (23:11 -0400)]
gtk: Better help for GTK_DEBUG
Reuse the newly introduced gdk_parse_debug_var for
GTK_DEBUG.
Matthias Clasen [Sun, 28 Jun 2020 03:09:55 +0000 (23:09 -0400)]
gsk: Better help for GSK_DEBUG
Reuse the newly introduced gdk_parse_debug_var for
GSK_DEBUG.
Matthias Clasen [Sun, 28 Jun 2020 03:09:07 +0000 (23:09 -0400)]
gdk: Better help for GDK_DEBUG
Include docstrings and format the list of supported
values better.
Also, add the same warning we have for GTK_DEBUG when
the environment variable is ignored.
Matthias Clasen [Sun, 28 Jun 2020 15:13:59 +0000 (11:13 -0400)]
testsuite: Don't pass GDK_DEBUG for release builds
The debug env vars are ignored in release builds,
and may spew warnings about that fact that break
tests.
Matthias Clasen [Sun, 28 Jun 2020 15:13:07 +0000 (11:13 -0400)]
wayland: Respect GDK_DEBUG=default-settings
You can get this in other ways for Wayland (by
setting GSETTINGS_BACKEND=memory), but it is better
to be consistent across backends.
Matthias Clasen [Sun, 28 Jun 2020 03:19:12 +0000 (23:19 -0400)]
Drop GTK_DEBUG_SHORTCUTS
It is unused.
Matthias Clasen [Sun, 28 Jun 2020 03:14:29 +0000 (23:14 -0400)]
shortcuts: Use GTK_DEBUG_KEYBINDINGS
There was just a single message under GTK_DEBUG_SHORTCUTS.
Consolidate with GTK_DEBUG_KEYBINDINGS.
Matthias Clasen [Sun, 28 Jun 2020 17:41:15 +0000 (13:41 -0400)]
docs: Update environment sections
Fix links in markdown, and add details about
Wayland environment variables.
Matthias Clasen [Sun, 28 Jun 2020 16:44:32 +0000 (16:44 +0000)]
Merge branch 'print-editor' into 'master'
Install the print editor
See merge request GNOME/gtk!2165
Matthias Clasen [Sun, 28 Jun 2020 16:41:57 +0000 (12:41 -0400)]
stringlist: Cosmetic documentation fix
Matthias Clasen [Sun, 28 Jun 2020 16:40:41 +0000 (12:40 -0400)]
gtk: Add some missing symbols to the docs
Matthias Clasen [Sun, 28 Jun 2020 16:39:48 +0000 (12:39 -0400)]
sorter: Some doc corrections
The docs were referring to some non-existing enum value.
Fix things up to match the current code.
Matthias Clasen [Sun, 28 Jun 2020 16:33:49 +0000 (12:33 -0400)]
stack: Remove nonexisting api from headers
The homogeneous property was dropped a while ago.
Matthias Clasen [Sun, 28 Jun 2020 16:23:08 +0000 (12:23 -0400)]
gdk: Small documentation fixes
Make sure gdk_event_get_seat shows up.
Matthias Clasen [Sun, 28 Jun 2020 12:06:17 +0000 (08:06 -0400)]
stack: Cosmetic documentation fixes
Fix parameter mismatches.
Matthias Clasen [Sun, 28 Jun 2020 01:53:57 +0000 (21:53 -0400)]
bitset: Cosmetic documentation changes
Matthias Clasen [Sun, 28 Jun 2020 14:12:45 +0000 (10:12 -0400)]
printeditor: Add desktop file and appdata
All our installed demos have this.
Matthias Clasen [Sun, 28 Jun 2020 14:26:19 +0000 (10:26 -0400)]
print-editor: Allow opening files
Since it calls itself an editor, it should really
support opening files on the commandline.
Matthias Clasen [Sun, 28 Jun 2020 12:33:17 +0000 (08:33 -0400)]
printeditor: Cosmetics
Bring this up to our standards for an installable demo,
by touching up the about dialog and menus.
Emmanuele Bassi [Sun, 28 Jun 2020 13:28:52 +0000 (13:28 +0000)]
Merge branch 'issue-2900' into 'master'
Nullable this_ argument in gtk_expression_bind()
Closes #2900
See merge request GNOME/gtk!2163
Emmanuele Bassi [Sun, 28 Jun 2020 12:40:11 +0000 (13:40 +0100)]
Add pre-condition check on nullable argument
Even if `gtk_expression_watch()` will do the same, we're calling public
API, so we should perform a check at the point of use, to ensure that
warnings are easily debuggable.
Emmanuele Bassi [Sun, 28 Jun 2020 12:39:17 +0000 (13:39 +0100)]
Annotate nullable argument
The `this_` argument is passed to `gtk_expression_watch()`, which
accepts it as nullable.
Fixes: #2900
Matthias Clasen [Sun, 28 Jun 2020 01:46:22 +0000 (21:46 -0400)]
docs: Remove ancient version information
We treat 4.0 as a new era.
Matthias Clasen [Sun, 28 Jun 2020 01:37:28 +0000 (21:37 -0400)]
multiselection: Update docs
Remove information that is no longer true. GtkMultiSelection
is persistent across sorting changes since
3d8b6f6b799499cca02.
Matthias Clasen [Sat, 27 Jun 2020 22:19:27 +0000 (22:19 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
See merge request GNOME/gtk!2160
Matthias Clasen [Sat, 27 Jun 2020 21:31:22 +0000 (17:31 -0400)]
docs: Migration guide additions
Matthias Clasen [Sat, 27 Jun 2020 21:28:15 +0000 (17:28 -0400)]
builder: Documentation tweaks
Don't use no-longer-existing enums as examples,
and drop the +.
Matthias Clasen [Sat, 27 Jun 2020 19:43:18 +0000 (19:43 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
See merge request GNOME/gtk!2159
Baurzhan Muftakhidinov [Sat, 27 Jun 2020 19:11:12 +0000 (19:11 +0000)]
Update Kazakh translation
Baurzhan Muftakhidinov [Sat, 27 Jun 2020 18:52:16 +0000 (18:52 +0000)]
Update Kazakh translation
Matthias Clasen [Sat, 27 Jun 2020 13:47:29 +0000 (09:47 -0400)]
gtk-demo: Drop an unused object
The main ui file was still creating a tree store,
but we've switched everything over to use list models.
Matthias Clasen [Sat, 27 Jun 2020 13:36:45 +0000 (09:36 -0400)]
builder: Warn about dropped objects
Use GTK_DEBUG=builder-objects to make GtkBuilder warn
if a named object from a ui files doesn't get claimed
by gtk_builder_get_object(). This is useful for finding
dead wood in .ui files.
Matthias Clasen [Sat, 27 Jun 2020 03:51:21 +0000 (03:51 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
Closes #2897 and #2898
See merge request GNOME/gtk!2158
Matthias Clasen [Sat, 27 Jun 2020 03:07:28 +0000 (23:07 -0400)]
listitem: Correct the docs
Matthias Clasen [Sat, 27 Jun 2020 02:57:56 +0000 (22:57 -0400)]
gtk-demo: Improve formatting in the color demo
Properly align and format the numbers in the size
dropdown.
Matthias Clasen [Sat, 27 Jun 2020 02:22:47 +0000 (22:22 -0400)]
text: Support reverse selection
Take ordering of cursor_position and selection_bound
into account when copying text to the clipboard, and
ensure that both orders work the same.
Fixes: #2898
Matthias Clasen [Sat, 27 Jun 2020 02:13:12 +0000 (22:13 -0400)]
text: Update action enabled state correctly
Take the editable property into account when updating
the emoji.insert action state, and update the action
when it changes.
Fixes: #2897
Matthias Clasen [Sat, 27 Jun 2020 02:12:42 +0000 (22:12 -0400)]
shortcutcontroller: Add some debug spew
This helps in debugging event routing and keyboard
shortcut issues.
Matthias Clasen [Sat, 27 Jun 2020 02:12:14 +0000 (22:12 -0400)]
widget: Fix an oversight
g_message comes with a builtin newline, don't add one
to the message.
Matthias Clasen [Sat, 27 Jun 2020 00:35:51 +0000 (00:35 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Adwaita: Fix block cursors in spinbuttons
Closes #2871
See merge request GNOME/gtk!2156
Matthias Clasen [Fri, 26 Jun 2020 23:55:19 +0000 (19:55 -0400)]
Adwaita: Fix block cursors in spinbuttons
Fix block cursors in vertical spinbuttons with Adwaita.
Fixes: #2871
Matthias Clasen [Fri, 26 Jun 2020 21:14:27 +0000 (21:14 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
Closes #2869
See merge request GNOME/gtk!2155
Matthias Clasen [Fri, 26 Jun 2020 15:56:27 +0000 (11:56 -0400)]
docs: Add css docs to entries
The various entries were missing the semi-standard
"CSS Nodes" section in their long descriptions. Add
them.
Matthias Clasen [Fri, 26 Jun 2020 19:49:39 +0000 (15:49 -0400)]
text: Be more selective when selecting on focus-in
We don't want to select on focus-in when the focus
comes from a child. The case where this does harm
is when you activate copy or paste actions from the
context menu. We close the menu before triggering the
action, and if that causes the text in the entry to
be selected, unexpected things happen, since the action
applies to the current selection.
Fixes: #2869
Matthias Clasen [Fri, 26 Jun 2020 19:27:09 +0000 (15:27 -0400)]
Revert "text: Avoid creating a PangoAttrList we don't need"
This reverts commit
67c26650280ba64ff1c0318be8d848e9563ddb21.
The splicing we do here has the important side-effect
of shifting the preedit attributes to the right position.
Without it, we end up always underlining the first chars
in the entry, regardless where the preedit happens.
Matthias Clasen [Fri, 26 Jun 2020 18:08:35 +0000 (14:08 -0400)]
text: Handle key events in the target phase
This makes sure that we do actual key input right
in the middle between all the capture and bubble
event controllers, and are not dependent on the
ordering of those controllers.
The bug that triggered this change was that the
shortcut for activation (Enter) was getting triggered
before the key input, causing Ctrl-Shift-u hex
to stop working, since it never received the enter
to commit the sequence.
Matthias Clasen [Fri, 26 Jun 2020 18:05:57 +0000 (14:05 -0400)]
widget: Add a debug message for consumed key events
Run the application with GTK_DEBUG=keybindings to
get some hints where key events get lost.
Matthias Clasen [Fri, 26 Jun 2020 18:05:28 +0000 (14:05 -0400)]
text: Give names to event controllers
It helps with debugging.
Matthias Clasen [Fri, 26 Jun 2020 17:08:09 +0000 (17:08 +0000)]
Merge branch 'wip/carlosg/sequence-state-fixups' into 'master'
Fixups to gesture sequence states
Closes #2895
See merge request GNOME/gtk!2154
Carlos Garnacho [Fri, 26 Jun 2020 15:36:37 +0000 (17:36 +0200)]
gtktext: Don't accept (twice!) all press actions
The gesture should claim the sequence after triggering uncancellable
actions, like pasting, showing a menu or selecting words/lines. A
single first button press initiating a drag does not trigger
anything yet, so it should avoid claiming the sequence.
Carlos Garnacho [Fri, 26 Jun 2020 15:35:05 +0000 (17:35 +0200)]
gtkswitch: Don't be eager in accepting the gesture
The gesture should be accepted whenever it triggers uncancellable
actions in the widget. This means it should be accepted if the
click does result in toggling the switch.
This leaves the pan gesture room to handle dragging the handle.
Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/2895
Matthias Clasen [Fri, 26 Jun 2020 14:31:20 +0000 (14:31 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
main: Avoid a warning
Closes #2894
See merge request GNOME/gtk!2153
Matthias Clasen [Fri, 26 Jun 2020 13:05:56 +0000 (09:05 -0400)]
docs: Some tweaks to the list widget overview
Matthias Clasen [Fri, 26 Jun 2020 12:43:49 +0000 (12:43 +0000)]
Merge branch 'wip/otte/bitset' into 'master'
Improve selection handling API for rubberbanding
See merge request GNOME/gtk!2086
Matthias Clasen [Fri, 26 Jun 2020 12:19:32 +0000 (08:19 -0400)]
main: Avoid a warning
transient-for relationships only exist between
windows, so check that both candidates are such.
Fixes: #2894
Emmanuele Bassi [Fri, 26 Jun 2020 08:48:51 +0000 (08:48 +0000)]
Merge branch 'tintou/dropdown-annotations' into 'master'
dropdown: Annotate the get_selected_item method
See merge request GNOME/gtk!2152
Emmanuele Bassi [Fri, 26 Jun 2020 08:46:35 +0000 (08:46 +0000)]
Merge branch 'wip/ricotz/annotations' into 'master'
gtk: Add some g-i annotations to GtkStringList
See merge request GNOME/gtk!2150
Corentin Noël [Fri, 26 Jun 2020 07:59:12 +0000 (09:59 +0200)]
dropdown: Annotate the get_selected_item method
We need to specify the type as we already know that it is at least a GObject and in case of no selection, NULL is returned.
Benjamin Otte [Fri, 26 Jun 2020 02:07:35 +0000 (04:07 +0200)]
listbase: Make rubberbanding a threshold drag
Benjamin Otte [Fri, 26 Jun 2020 01:26:11 +0000 (03:26 +0200)]
listbase: Only compute the modifiers when releasing the rubberband
... and do the right things:
nothing: selection = rubberband
ctrl: selection = selection OR rubberband
shift: selection = selection AND (NOT rubberband)
ctrl+shift: selection = selection XOR rubberband
(not sure this one makes sense, but toggling is fun)
Benjamin Otte [Fri, 26 Jun 2020 00:56:38 +0000 (02:56 +0200)]
listbase: Compute rubberband region on-demand
Instead of storing the active items as we go, compute the affected items
whenever the rubberband changes and in particular when the rubberband
ends.
That way, the rubberband is guaranteed to select a rectangle even
after scrolling very far.
This is achieved by having a get_items_in_rect() vfunc that selects all
the items in the rubberbanded rectangle and returns them as a bitset.
Benjamin Otte [Fri, 26 Jun 2020 00:55:53 +0000 (02:55 +0200)]
listview: Allocate rubberband at end of size_allocate()
Otherwise the rubberband uses the wrong scroll offsets.
Benjamin Otte [Wed, 24 Jun 2020 03:52:35 +0000 (05:52 +0200)]
listbase: Flip autoscroll deltas if adjustments are flipped
Fixes autoscroll on RTL languages.
Benjamin Otte [Wed, 24 Jun 2020 03:42:38 +0000 (05:42 +0200)]
listbase: Allocate gridview items properly on RTL
We need to flip the items.
Benjamin Otte [Wed, 24 Jun 2020 03:25:28 +0000 (05:25 +0200)]
multiselection: Implement get_selection_in_range()
Benjamin Otte [Wed, 24 Jun 2020 03:02:04 +0000 (05:02 +0200)]
listbase: Allocate rubberband according to list coords
The rubberband is now handled on the list coordinate system.
When starting the rubberband, we track the item under the pointer and
follow it when it is moving.
This may lead to the rubberband start position changing position and
while this may be confusing, it alerts users to the fact that something
crazy is going on.
Benjamin Otte [Wed, 24 Jun 2020 02:49:21 +0000 (04:49 +0200)]
listbase: Move a common function from the children into GtkListBase
We want to use it for the rubberband later.
Benjamin Otte [Wed, 24 Jun 2020 02:46:53 +0000 (04:46 +0200)]
listbase: Don't do extra work
Scrolling causes a queue_resize() which will update the rubberband in
size_allocate() and queue a draw.